在第 24 天,我們將專注於提升 Line Bot 的用戶體驗,通過改善與用戶之間的互動方式和界面來增加使用的舒適度和便利性。好的用戶體驗不僅能讓用戶更喜歡使用你的 Bot,還能減少錯誤發生的頻率,提升整體使用效果。
添加預設的快捷回應選項:
from linebot.models import QuickReply, QuickReplyButton, MessageAction
@handler.add(MessageEvent, message=TextMessage)
def handle_text_message(event):
quick_reply_buttons = QuickReply(items=[
QuickReplyButton(action=MessageAction(label="查詢天氣", text="查詢天氣")),
QuickReplyButton(action=MessageAction(label="查看新聞", text="查看新聞")),
QuickReplyButton(action=MessageAction(label="幫助", text="幫助"))
])
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text="請選擇您的需求:", quick_reply=quick_reply_buttons)
)
設計對話路徑:
錯誤處理的友好提示:
@handler.add(MessageEvent, message=TextMessage)
def handle_text_message(event):
user_message = event.message.text
if user_message not in ["查詢天氣", "查看新聞", "幫助"]:
quick_reply_buttons = QuickReply(items=[
QuickReplyButton(action=MessageAction(label="查詢天氣", text="查詢天氣")),
QuickReplyButton(action=MessageAction(label="查看新聞", text="查看新聞")),
QuickReplyButton(action=MessageAction(label="幫助", text="幫助"))
])
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(
text="抱歉,我不明白您的意思,請選擇一個選項:",
quick_reply=quick_reply_buttons
)
)
else:
# 正常處理邏輯
pass
使用圖文消息和模板消息:
from linebot.models import ButtonsTemplate, TemplateSendMessage, URITemplateAction
@handler.add(MessageEvent, message=TextMessage)
def handle_text_message(event):
if event.message.text == "查看新聞":
buttons_template = ButtonsTemplate(
title='今日新聞', text='點擊下方按鈕查看詳細內容', actions=[
URITemplateAction(label='新聞標題1', uri='https://news.example.com/1'),
URITemplateAction(label='新聞標題2', uri='https://news.example.com/2')
])
template_message = TemplateSendMessage(
alt_text='查看新聞', template=buttons_template)
line_bot_api.reply_message(event.reply_token, template_message)
加入富有表情和Emoji的回應:
from linebot.models import TextSendMessage
@handler.add(MessageEvent, message=TextMessage)
def handle_text_message(event):
if event.message.text == "查詢天氣":
text_message = TextSendMessage(text="今日天氣 ☀️:晴朗,溫度 25°C")
line_bot_api.reply_message(event.reply_token, text_message)
使用Flex Message 進行自定義消息排版:
使用模糊匹配技術:
fuzzywuzzy
這樣的 Python 庫來實現。from fuzzywuzzy import process
VALID_OPTIONS = ["查詢天氣", "查看新聞", "幫助"]
@handler.add(MessageEvent, message=TextMessage)
def handle_text_message(event):
user_message = event.message.text
best_match, score = process.extractOne(user_message, VALID_OPTIONS)
if score > 70:
# 假如相似度超過70%,視為匹配成功
user_message = best_match
else:
line_bot_api.reply_message(event.reply_token, TextSendMessage(text="對不起,我不明白您的請求。"))
return
# 根據處理後的 user_message 進行相應操作
為常見的錯誤輸入提供建議:
提供新功能提示:
保持持續的交互:
@handler.add(MessageEvent, message=TextMessage)
def handle_text_message(event):
if event.message.text == "查詢天氣":
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text="今日天氣 ☀️:晴朗,溫度 25°C\n您還可以:\n1. 查看本地新聞\n2. 查詢明日天氣")
)
提供多語言選項:
@handler.add(MessageEvent, message=TextMessage)
def handle_text_message(event):
user_message = event.message.text
if user_message == "選擇語言":
quick_reply_buttons = QuickReply(items=[
QuickReplyButton(action=MessageAction(label="中文", text="語言:中文")),
QuickReplyButton(action=MessageAction(label="English", text="語言:English"))
])
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text="請選擇您的語言:", quick_reply=quick_reply_buttons)
)